package 哈希表;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author Weton Li
 * @Date 2021/4/12 08:44
 */
public class 只出现一次的数字 {

    public static int method(int[] nums){
        HashMap<Integer, Integer> map = new HashMap<>();

        for (int i = 0; i < nums.length; i++) {
//            Integer count = map.get(nums[i]);
//            if (count == null) { // 如果该数未出现，第一次出现必进if
//                count=1;
//            }else {
//                count++;
//            }
//
//            map.put(nums[i], count);
            Integer count = map.getOrDefault(nums[i], 0);
            map.put(nums[i],++count); // 先count加一，再存储
        }

        for(Integer i : map.keySet()){
            if (map.get(i) == 1) {
                return i;
            }
        }

        return -1;
//        Map<Integer, Integer> map = new HashMap<>();
//        for (Integer i : nums) {
//            Integer count = map.get(i);
//            count = count == null ? 1 : ++count;
//            map.put(i, count);
//        }
//        for (Integer i : map.keySet()) {
//            Integer count = map.get(i);
//            if (count == 1) {
//                return i;
//            }
//        }
//        return -1; // can't find it.
    }
    public static void main(String[] args) {
        int[] input = {4,1,2,1,2,1,1,2};
        System.out.println(method(input));
    }
}
